package br.com.uast.spl.variabilidades3_ArqConfig;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Configuracao {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public File arquivo;
	public FileReader fr;
	public BufferedReader br;
	public FileWriter fw;
	public BufferedWriter bw;
	
	public Configuracao() {
		arquivo = new File(System.getProperty("user.dir").toString()+File.separator+"src"+File.separator+"br"+File.separator+"com"+File.separator+"uast"+File.separator+"spl"+File.separator+"variabilidades3_ArqConfig"+File.separator+"Fazendeiro.java");
		try {
			fr = new FileReader(arquivo);
			br = new BufferedReader(fr);
			
			fw = new FileWriter(arquivo, true);
			bw = new BufferedWriter(fw);
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public void ConfigurarVersao(int versao) throws IOException, InterruptedException{
		
		switch (versao) {
		case 1:
			
			excluir(2);
			
			break;
			
		case 2:
			
			excluir(3);
			
			break;
			
		case 3:
			
			break;

		default:
			break;
		}
		
	}
	
	private void excluir(int versao) throws IOException{
		
		//Fazendeiro.class.getResource(".").toURI()
		File temp = null;

		
		String linha = "";
		
		while (br.ready()) {
			linha += br.readLine() + "\r\n";
			
			if(linha.contains("//[v"+versao+"_ini]")){
				linha = linha.replace("//[v"+versao+"_ini]", "/*[v"+versao+"_ini]");			
			}
			
			if(linha.contains("//[v"+versao+"_fim]")){
				linha = linha.replace("//[v"+versao+"_fim]", "[v"+versao+"_fim]*/");
			}
			
			if(versao == 2){
				
				if(linha.contains("//[v"+(versao+1)+"_ini]")){
					linha = linha.replace("//[v"+(versao+1)+"_ini]", "/*[v"+(versao+1)+"_ini]");		
				}
				if(linha.contains("//[v"+(versao+1)+"_fim]"))
					linha = linha.replace("//[v"+(versao+1)+"_fim]", "[v"+(versao+1)+"_fim]*/");
			}
		}
		
		bw.close();
		fw.close();
		fr.close();
		br.close();
		
		File aux = new File(System.getProperty("user.dir").toString()+File.separator+"src"+File.separator+"br"+File.separator+"com"+File.separator+"uast"+File.separator+"spl"+File.separator+"variabilidades3_ArqConfig"+File.separator+"temp");
		
		arquivo.renameTo(aux);
		aux.deleteOnExit();
		
		arquivo = null;
		temp = new File(System.getProperty("user.dir").toString()+File.separator+"src"+File.separator+"br"+File.separator+"com"+File.separator+"uast"+File.separator+"spl"+File.separator+"variabilidades3_ArqConfig"+File.separator+"Fazendeiro.java");
		
		
		//if(!temp.exists()){
		temp.createNewFile();
			
		FileWriter fw2 = new FileWriter(temp, true);
		BufferedWriter bw2 = new BufferedWriter(fw2);
		
		bw2.write(linha);
			
		bw2.close();
		fw2.close();
			
		//}
		
	}
	
}
